Imports System
Imports System.Web.Caching
Imports System.Reflection

Namespace ModuleMasters.DNN.Modules.NCAAPoolStandings.Data

    Public MustInherit Class DataProvider

#Region "Shared/Static Methods"
        ' singleton reference to the instantiated object 
        Private Shared objProvider As DataProvider = Nothing

        ' constructor
        Shared Sub New()
            CreateProvider()
        End Sub

        ' dynamically create provider
        Private Shared Sub CreateProvider()
            objProvider = CType(Framework.Reflection.CreateObject("data", "ModuleMasters.DNN.Modules.NCAAPoolStandings.Data", "ModuleMasters.DNN.Modules.NCAAPoolStandings"), DataProvider)
        End Sub

        ' return the provider
        Public Shared Shadows Function Instance() As DataProvider
            Return objProvider
        End Function
#End Region

#Region "Abstract Methods"
	    '---------------------------------------------------------------------
	    ' TODO Declare DAL methods. Should be implemented in each DAL DataProvider
        ' Use CodeSmith templates to generate this code
    	'---------------------------------------------------------------------

        Public MustOverride Function ListNCAAPoolStandings(ByVal PortalId As Integer, ByVal ModuleId As Integer) As IDataReader
        Public MustOverride Function GetModuleList(ByVal PortalId As Integer) As IDataReader
        'Public MustOverride Function GetNCAAPoolStandingsByModules(ByVal ModuleId As Integer) As IDataReader
        'Public MustOverride Function GetNCAAPoolStandings(ByVal ItemID As Integer, ByVal ModuleId As Integer) As IDataReader
        'Public MustOverride Function AddNCAAPoolStandings(ByVal ModuleId As Integer,  ByVal Field1 as String ) as integer
        'Public MustOverride Sub UpdateNCAAPoolStandings(ByVal ItemId As Integer, ByVal Field1 as String )
        'Public MustOverride Sub DeleteNCAAPoolStandings(ByVal ItemID As Integer)
#End Region

    End Class

End Namespace
